\subsection{接受是不够的}
不幸的是，假定被接受陈述的正确性在一个联邦共识协议中带来的安全性和存活性不是最优的。我们依次来讨论安全性和存活性。给定一些情景，我们然后讨论为什么在FBA中的问题比中心化拜占庭一致性中的更为棘手。

\subsubsection{安全性}\label{sec:voting_safety}
考虑一个仅包含唯一的、全体一致同意的{\quorum}的FBAS $\langle\mybm{V},\mybm{Q}\rangle$——即，$\forall v, \mybm{Q}(v)=\left\{\mybm{V}\right\}$。这应当是一个安全性的保守选择——一个节点只有在每个节点都同意之后才会做一件事。然而由于对任一$v$来说每个节点都是{\vblock}的，任何节点都能够独立地说服其它节点接受随意的陈述。

问题在于只有在完好节点中被接受陈述才是安全的。但正如第\ref{sec:quorum_intersect}讨论的那样，保证正确性的唯一的必要条件是良性行为节点的{\quorum}交，这有可能在一些良性行为节点被污染的情形下也会成立。特别地，当$\mybm{Q}(v)=\mybm{V}$时，仅有的$DSet$是$\emptyset$和$\mybm{V}$，这意味着任何一个节点错误将污染整个系统。然而，除$B\subseteq\mybm{V}${\quorum}可交性仍然成立。

\subsubsection{存活性}\label{sec:accept_not_enough_liveness}
另一个被接受陈述的局限性是，其它的完好节点可能不会接受它们。对存活性来说，这种可能性使得依赖于被接受的陈述是有问题的。如果一个节点由于它接受了一个陈述而作用于该陈述上，其它的节点可能无法以类似的方式处理该陈述。

\begin{figure}
\centering
\begin{tikzpicture}[thick,
    %node/.style={fewshade=\maincolor,circle,align=center,inner sep=0mm}
    node/.append style={align=center,inner sep=1pt},
  ]
\node[node] (v1) at (0,0)
     { $v_1$
       \\ 赞成 $a$ \\     接受 };
\node[node,right=.4cm of v1] (v2)
     { $v_2$ \\ 赞成 $a$ \\ \phantom{接受}};
\node[node,right=.4cm of v2] (v3)
     { \phantom{$v_3$} \\ \phantom{赞成 $a$} \\ \phantom{接受}};
\node[node,right=.4cm of v3] (v4)
     { $v_4$ \\ 赞成 $\na$ \\ \phantom{接受}};
\node[draw=few-\maincolor-bright,line cap=round,line width=1ex,
  opacity=.9,fit={(v3)},
  cross out,inner sep=-2mm] {};
\node[node,fill=none] at (v3) { $v_3$ \\ \textbf{赞成 $\bm{a}$} \\ };
\begin{scope}[on background layer]
\node[box,fit=(v1) (v4)] (bft) {};
\end{scope}
\draw[transition] (bft) to[loop above,looseness=5]
  node[pos=.8,right,anchor=west] {\footnotesize 3/4} (bft);
\node[anchor=base east, font={\small},align=left]
at ([yshift=4pt] bft.north east) {切片是包含自身的\\~3个节点};
%\node[overlay,right=4mm of v2, text width=18ex,font=\small]
%{ $\forall v\in\{v_1,\ldots,v_4\}$,
%  $\Q v$ is all sets of 3 nodes containing $v$.};
\node[anchor=south east,overlay] at ([xshift=-1ex] bft.south west) {a)};
\end{tikzpicture}\smallskip\\
\begin{tikzpicture}[thick,
    %node/.style={fewshade=\maincolor,circle,align=center,inner sep=0mm}
    node/.append style={align=center,inner sep=1pt},
  ]
\node[node] (v1) at (0,0)
     { \phantom{$v_1$}
       \\ \phantom{赞成 $a$} \\
       \phantom{接受} };
\node[node,right=.4cm of v1] (v2)
     { $v_2$ \\ 赞成 $a$ \\ \phantom{接受}};
\node[node,right=.4cm of v2] (v3)
     { $v_3$ \\ \textbf{赞成 $\bm{\na}$} \\ \textbf{接受} };
     %\setbox0=\hbox{accept}\hbox to\wd0{\hss \hss} };
\node[node,right=.4cm of v3] (v4)
     { $v_4$ \\ 赞成 $\na$ \\ \phantom{接受}};
\node[draw=few-\maincolor-bright,line cap=round,line width=1ex,
  opacity=.9,fit={(v1)},
  cross out,inner sep=-2mm] {};
\node[node,fill=none] at (v1) { $v_1$ \\ 赞成 $a$ \\ \textbf{赞成
    $\bm{\na}$}};
\begin{scope}[on background layer]
\node[box,fit=(v1) (v4)] (bft) {};
\end{scope}
\draw[transition] (bft) to[loop above,looseness=5]
  node[pos=.8,right,anchor=west] {\footnotesize 3/4} (bft);
\node[anchor=south east,overlay] at ([xshift=-1ex] bft.south west) {b)};
\end{tikzpicture}

\caption{$v_2$ 当$v_2$没有看到加粗消息时$v_2$无法区分的两种情形}
\label{fig:unresolvable}
\end{figure}

考虑图\ref{fig:unresolvable}a的情形，其中$v_3$在帮助批准$v_1$并接受陈述$a$之后崩溃了。尽管$v_1$接受了$a$，$v_2$和$v_4$却不能。特别地，在$v_2$看来，所描述的情景和图\ref{fig:unresolvable}b是一样的，后者$v_3$赞成$\bar a$且是良性行为的但回复较慢，而$v_1$是恶性行为的并在向$v_3$发送对$\bar a$的赞成票(因此导致$v_3$接受$\bar a$)的同时又向$v_2$发送对$a$的赞成票。

为了支持像{图\ref{fig:unresolvable}a}中协议层次的存活性概念，$v_1$需要一种方式来确保每个其它的完好节点最终能够在作用于$a$之前接受$a$。一旦是这种情形，则说系统在$a$上达成了一致就合情合理了。

\begin{definition}[认可]\label{def:agree}
	一个FBAS $\langle\mybm{V},\mybm{Q}\rangle$\textbf{认可}陈述$a$当且仅当无论接着会发生什么，一旦足够多的消息被发送且处理了，每个完好节点将接受$a$。
\end{definition}

\subsubsection{和中心化选举的比较}

为了理解上述问题为何会出现在联邦选举中，考虑一个由$N$个节点组成且{\quorum}大小为$T$的中心化拜占庭系统。这样一个系统在含不大于$f_L=N-T$个节点错误的情况下具有{\quorum}可达性。由于任意两个{\quorum}共享至少$2T-N$个节点，良性行为的节点的{\quorum}交持最多可容纳$f_S=2T-N-1$个拜占庭错误。

中心化拜占庭一致性系统通常设置$N=3f+1$，$T=2f+1$来使得$f_L=f_S=f$，该处的平衡点的安全性和存活性有相同的容错能力。如果安全性比存活性更为重要，一些协议增加$T$以使得$f_S>f_L$~\cite{Li:2007:BOF:1973430.1973440}。在FBA中由于{\quorum}有机成长，系统发现并使得自身处于平衡状态的可能性不大，这让在不谈存活性的情况下维持安全性变得更为重要。

现在考虑在中心化系统中一个节点$v$反对一个已被批准的陈述$a$的情形。如果$v$侦听到$f_S+1$个节点批准了$a$，$v$知道要么它们当中的一个是良性行为的，要么所有的安全性保证都崩溃了。不论哪种情形，$v$能在不损失安全性的条件下立即作用于$a$。FBA的等价的情景是侦听集合$B$，若$B$被删除则会损害良性节点的{\quorum}交。因为下面三个原因辨别出这样一个$B$是需要技巧的：第一，{\quorum}是动态被发现的；第二，恶性行为的节点可能会对切片撒谎；第三，$v$不知道哪个节点是良性行为的。取而代之的做法是，我们在{\vblock}接受$a$时定义联邦选举以接受$a$。{\vblock}属性有易于被检测的优势，但等价于在中心化系统中当我们确实需要$f_S+1$安全能力时侦听$f_L+1$个节点。

为了确保在中心化系统中获得所有良性行为节点的认可，只需要$f_L+f_S+1$个节点承认一个陈述被批准了。如果它们当中的多于$f_L$出现错误，我们不再期望存活性。如果$f_L$或更少的节点出现了错误，那么我们知道$f_S+1$个节点仍然愿意作证批准，这反过来说服所有其它的良性行为节点。然而$f_S$的可恢复性在FBA模型中也没有简单的对等情形。

换句话说，在某一时刻一个节点需要强烈信任某个陈述以依赖于它对安全性的真假。一个中心化的系统为陈述$a$提供两种途径来达到这个状态：直接批准$a$，或者从$f_S+1$个声明$a$被批准的节点上回溯推断，如果发现它们都撒谎了则认为安全性是不可期望的。FBA缺少后面一种方法；仅有的在良性行为节点上用于安全性的工具是直接批准。由于节点仍然需要有一种方式来克服给已被批准的陈述投反对票的情形，我们引入了接受的概念，但是它提供了一个限于完好节点的稍弱的相容性保障。
